unattended ai mess#694
Conversation
|
question - where is this used - the usually graceful exit is the followup to a broken plugin at least in the apps im aware of |
|
You are right to ask for a concrete consumer. I searched the local source/docs and found no project call site that catches The change was prompted by the existing I therefore do not want to overstate this as a bug fix. If maintaining atomic registration is not a desired API invariant, I am happy to close the PR rather than add behavior without a concrete caller. |
|
"You are right to push back on this" is a classic AI line. |
|
closing as unattended ai |
Summary
Root cause
PluginManager.register()inserted the plugin into_name2pluginbefore validating all hook implementations. If a later hook implementation raisedPluginValidationError, earlier state remained visible and the failed plugin name could not be reused.Tests
uv run pytest testing/test_pluginmanager.py::test_register_validation_failure_rolls_back(failed before the fix, passes after)uv run pytest